home *** CD-ROM | disk | FTP | other *** search
/ Best of Shareware / Best of PC Windows Shareware 1.0 - Wayzata Technology (7111) (1993).iso / mac / ZIPPED / DOS / GRAPHICS / LISS151.ZIP / LISSSRC.ZIP / ERROR_FN.C < prev    next >
C/C++ Source or Header  |  1992-02-19  |  2KB  |  54 lines

  1. #include <alloc.h>
  2. #include <conio.h>
  3. #include <graphics.h>
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. #include "defines.h"    /* global defines                   */
  7. #include "error_fn.h"   /* function prototypes, error enums */
  8. #include "field.h"      /* for disp_message()               */
  9.  
  10. void error_fn(int errnum, char *msg)
  11. {
  12.     char str[80];
  13.  
  14.     unsigned long freemem;
  15.  
  16.     freemem=farcoreleft();
  17.  
  18.     switch(errnum) {    /* non-fatal errors */
  19.         case EFOPEN:
  20.             sprintf(str,"Cannot open data file %s for output.  <ENTER> to continue:",msg);
  21.             disp_message(str);
  22.             getch();
  23.             return;
  24.         case EFCLOSE:
  25.             sprintf(str,"Error writing %s.  <ENTER> to continue",msg);
  26.             disp_message(str);
  27.             getch();
  28.             return;
  29.     }
  30.  
  31.     /* fatal errors -- time to bail back to DOS */
  32.     closegraph();
  33.     switch(errnum) {
  34.         case EGRAPH:
  35.             fprintf(stderr,"Graphics error: %s\n",msg);
  36.             break;
  37.         case EMEM:
  38.             fprintf(stderr,"Not enough memmory in procdeure '%s'.\n",msg);
  39.             fprintf(stderr,"farcoreleft()=%lu\n",freemem);
  40.             fprintf(stderr,"Try running Lissajous with more free memmory.\n");
  41.             break;
  42.         case EUNK:
  43.         default:
  44.             fprintf(stderr,"Unknown error in procedure '%s'.\n",msg);
  45.             fprintf(stderr,"Please contact Aaron Caba\n");
  46.             break;
  47.     }
  48.  
  49.     fprintf(stderr,"Error number:  %i\n",errnum);
  50.     fprintf(stderr,"Press any key to halt:");
  51.     getch();
  52.     exit(errnum);
  53. }
  54.